Skip to content

GH-4190 Add documentation for Kafka KIP-848 consumer group protocol#68

Open
lillo42 wants to merge 3 commits into
BrighterCommand:masterfrom
lillo42:add-kip-848-docs
Open

GH-4190 Add documentation for Kafka KIP-848 consumer group protocol#68
lillo42 wants to merge 3 commits into
BrighterCommand:masterfrom
lillo42:add-kip-848-docs

Conversation

@lillo42

@lillo42 lillo42 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Description

Documents the Kafka KIP-848 consumer group protocol support added in BrighterCommand/Brighter#4233.

Kafka Configuration (KafkaConfiguration.md)

  • New Consumer Group Protocol (KIP-848) section:
    • IGroupProtocol strategy selected via KafkaSubscription.GroupProtocol, with ClassicGroupProtocol (default) and ConsumerGroupProtocol (KIP-848) implementations and code examples for both.
    • Back-fill behavior: when no protocol is supplied (or properties are left null), the consumer back-fills SessionTimeout (default 10 s) and PartitionAssignmentStrategy (default RoundRobin) from its constructor parameters, preserving existing behavior.
    • Warning that the back-fill mutates the instance in place, so an IGroupProtocol instance must not be shared across subscriptions.
    • Notes that ConsumerGroupProtocol deliberately does not set session.timeout.ms, heartbeat.interval.ms, or partition.assignment.strategy, which librdkafka rejects when group.protocol=consumer.
    • Broker requirement: Apache Kafka 4.0+ (KRaft mode, no ZooKeeper).
    • Static-membership caveat: GroupInstanceId must be unique per consumer instance — only set it with a single performer, or assign unique ids via configHook.
    • Infrastructure-validation caveat: with the consumer protocol, membership completes asynchronously, so OnMissingChannel.Validate cannot reliably detect missing topics; prefer Create or provision topics out-of-band.
  • Subscription options list: added GroupProtocol; marked SessionTimeout and PartitionAssignmentStrategy as deprecated in favor of ClassicGroupProtocol.
  • Partition Assignment Strategy section: added a deprecation note and updated the Range/CooperativeSticky examples to configure the strategy via ClassicGroupProtocol.

V10 Migration Guide (V10MigrationGuide.md)

  • New Kafka KIP-848 Consumer Group Protocol entry under "Adopt New Features":
    • Before/after examples for migrating off the obsoleted KafkaSubscription.SessionTimeout and KafkaSubscription.PartitionAssignmentStrategy properties to ClassicGroupProtocol.
    • Example showing how to opt into the KIP-848 consumer protocol via ConsumerGroupProtocol.
    • Notes that this is not a breaking change — existing subscriptions continue to use the classic protocol by default.

Related Issues

BrighterCommand/Brighter#4190
BrighterCommand/Brighter#4233

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

lillo42 added 3 commits July 23, 2026 20:48
…ter#4233)

- KafkaConfiguration: add Consumer Group Protocol (KIP-848) section covering
  IGroupProtocol, ClassicGroupProtocol, ConsumerGroupProtocol, back-fill
  behavior, no-sharing contract, static membership and Validate caveats
- KafkaConfiguration: mark SessionTimeout and PartitionAssignmentStrategy
  subscription options as deprecated in favor of GroupProtocol
- V10MigrationGuide: add Kafka KIP-848 as a V10 new feature with before/after
  migration examples for the obsoleted properties
…rCommand/Brighter#4233)

- Add Consumer Group Protocol (KIP-848) section covering IGroupProtocol,
  ClassicGroupProtocol, ConsumerGroupProtocol, back-fill behavior, the
  no-sharing contract, static membership and Validate caveats
- Mark SessionTimeout and PartitionAssignmentStrategy subscription options
  as deprecated in favor of GroupProtocol
- Update Partition Assignment Strategy examples to use ClassicGroupProtocol
… feature

Document the new GroupProtocol option, the obsoleted SessionTimeout and
PartitionAssignmentStrategy properties (with before/after examples), and
how to opt into the KIP-848 consumer protocol. Refs BrighterCommand/Brighter#4233
@lillo42 lillo42 changed the title Add KIP-848 docs GH-4190 Add documentation for Kafka KIP-848 consumer group protocol Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant